var mask; // 加载框
var win; // 弹出框，内部加载FormPanel
var form; // 表单
Ext.onReady(function() {
	mask = new Ext.LoadMask(Ext.getBody(), {
				msg : "加载中，请稍等..."
			});
	form = new Ext.form.Panel({
		frame : true,
		layout : {
			type : 'vbox',
			align : 'stretch'
		},
		border : false,
		bodyPadding : 10,
		fieldDefaults : {
			labelAlign : 'top',
			labelWidth : 100,
			labelStyle : 'font-weight:bold'
		},
		defaults : {
			margins : '0 0 10 0'
		},
		// url: "dev/addPower.action",
		method : "post",
		items : [{
					id : "groupName",
					xtype : 'textfield',
					fieldLabel : '用户组名称',
					name : "userGroup.groupName",
					labelStyle : 'font-weight:bold;padding:0',
					allowBlank : false,
					fieldDefaults : {
						labelAlign : 'top'
					}
				},{
					id : "tableName",
					xtype : 'textfield',
					fieldLabel : '预置信息表名',
					name : "userGroup.tableName",
					labelStyle : 'font-weight:bold;padding:0',
//					allowBlank : false,
					fieldDefaults : {
						labelAlign : 'top'
					}
				}],

		buttons : [{
					text : '取消',
					handler : function() {
						// this.up('form').getForm().reset();
						this.up('window').hide();
					}
				}, {
					text : '提交',
					handler : function() {
						var item = form.form;
						if (item.isValid()) {
							item.submit({
										waitMsg : '提交中，请稍等...',
										success : function(form, action) {
											win.hide(); // 隐藏窗口
											Ext.Msg.alert("提示", action.result.msg, refreshHTML);
//											window.location.reload();
										},
										failure : function(form, action) {
											win.hide(); // 隐藏窗口
											if (action != null
													&& action.result != null
													&& action.result.msg != null) {
												Ext.Msg.alert("提示",
														action.result.msg);
											} else {
												Ext.Msg.alert("提示",
														"服务器故障，请稍后重试！");
											}
										}
									});
						}
					}
				}]
	});

	win = Ext.widget('window', {
				title : '添加',
				closeAction : 'hide',
				width : 400,
				height : 300,
				minHeight : 400,
				layout : 'fit',
				resizable : true,
				modal : true,
				items : form
			});

});
function refreshHTML() {
	window.location.reload();
}
/**
 * 显示添加表单
 */
function showAddForm() {
	form.form.url = "user/addUserGroup.action"; // 是form内的form url
	win.title = "添加";
	win.show();
}

/**
 * 显示修改表单
 */
function showUpdateForm(id) {
	// 发送ajax操作，进行数据加载
	if (mask) {
		mask.show();
	}
	Ext.Ajax.timeout = 60000;
	Ext.Ajax.request({
				url : 'user/getUserGroup.action',
				method : "post",
				params : {
					id : id
				},
				timeout : 20000,
				success : function(response) {
					var json = eval("(" + response.responseText + ")");
					if (json.userGroup != null) {
						mask.hide();
						//将id放入隐藏域中
//						document.getElementById("id").value = json.power.id;
						//将加载的数据添加到form中
						Ext.getCmp("groupName").setValue(json.userGroup.groupName);
						Ext.getCmp("tableName").setValue(json.userGroup.tableName);
						form.form.url = "user/updateUserGroup.action?id=" + json.userGroup.id; // 是form内的form url
						win.title = "修改";
						win.show();
						return;
					} else {
						mask.hide();
						Ext.Msg.alert("提示", "执行失败，内部服务器错误！");
					}
				},
				failure : function(response) {
					mask.hide();
					Ext.Msg.alert("提示", "请求失败，请稍后重试！");
				}
			});
}

/**
 * 删除操作
 */
var idValue;
function deleteCmd(id) {
    idValue = id;
    Ext.MessageBox.confirm('Confirm', '确定要删除该记录吗？', DoDelete);
}
function DoDelete(btn) {
	if (btn == "yes") {
		if (mask) {
			mask.show();
		}
		Ext.Ajax.timeout = 60000;
		Ext.Ajax.request({
					url : 'user/deleteUserGroup.action',
					method : "post",
					params : {
						id : idValue
					},
					timeout : 20000,
					success : function(response) {
						var json = eval("(" + response.responseText + ")");
						if (json.msg != null) {
							mask.hide();
							// alert(json.msg);
							// if(Ext.Msg.alert("提示", json.msg)) {
							window.location.reload();
							// }
							return;
						} else {
							mask.hide();
							Ext.Msg.alert("提示", "执行失败，内部服务器错误！");
						}
					},
					failure : function(response) {
						mask.hide();
						Ext.Msg.alert("提示", "请求失败，请稍后重试！");
					}
				});
	}
}

/**
 * 批量删除权限操作
 */
function batchDel() {
    Ext.MessageBox.confirm('Confirm', '确定要删除选中的记录吗？', DoBatchDelete);
}
function DoBatchDelete(btn) {
	if (btn == "yes") {
		var ids = [];
		// 获得页面上用户已经勾选的checkbox
		var chks = document.getElementsByName("chk");
		for (var i = 0; i < chks.length; i++) {
			if (chks[i].checked == true) {
				ids.push(chks[i].value);
			}
		}
		if(ids.length == 0) {
			Ext.Msg.alert("提示","请选中要删除的记录！");
			return;
		}

		if (mask) {
			mask.show();
		}
		Ext.Ajax.timeout = 60000;
		Ext.Ajax.request({
					url : 'user/batchDeleteUserGroup.action',
					method : "post",
					params : {
						ids : ids
					},
					timeout : 20000,
					success : function(response) {
						var json = eval("(" + response.responseText + ")");
						if (json.msg != null) {
							mask.hide();
							// alert(json.msg);
							// if(Ext.Msg.alert("提示", json.msg)) {
							window.location.reload();
							// }
							return;
						} else {
							mask.hide();
							Ext.Msg.alert("提示", "执行失败，内部服务器错误！");
						}
					},
					failure : function(response) {
						mask.hide();
						Ext.Msg.alert("提示", "请求失败，请稍后重试！");
					}
				});
	}
}